草庐IT

Android GoogleMap 或 SupportMapFragment - 空指针异常

全部标签

pointers - 如何使用反射获取字符串指针的变量名?

我想通过反射获取字段名称的名称。我将字符串作为指针传递,然后我想在函数中检索变量名称。typeFooBarstruct{foo*string}funcbar(s*string){varnamestring//TODO:Getnameofthefieldthatsispointingto!fmt.Println("Expectedstringisfoo:"+name)}funcmain(){f:=Foo{"bar"}bar(f.s)}我尝试通过以下方式获取s的值val:=reflect.ValueOf(s)然后我无法获取变量名。我应该提到我的结构中有多个字段,我事先不知道哪个字段有问题。

pointers - 函数指针参数变化

我正在尝试编写一些使用指针参数更改结构片段的函数。我在GoPlayground中用这种类型的代码做了一些Playground,我发现我有一些错误,但我不知道什么是管理它的最佳方法packagemainimport"fmt"typePersonstruct{namestring}funcdoSomething(person*Person){person.name="John"}funcmain(){varpersons[]Personp:=Person{name:"David"}persons=append(persons,p)doSomething(&p)fmt.Println(per

pointers - 初始化指针数组 - 无法创建类型 *[]type

它是一个简单的代码,将car类型的对象保存到一个car类型的数组中。我在这里尝试使用指针来传递数组引用。有2个问题:1-我无法将其初始化为空数组。当我使用make时,它说:cannotmaketype*[]car2-如果我不使用make,会出现运行时错误:panic:runtimeerror:invalidmemoryaddressornilpointerdereference代码:import"fmt"typecarstruct{platestringcolorstring}funcmain(){var_cars*[]car//listofcars_cars=make(*[]car,

pointers - 不同类型的指针之间有什么区别?

指针指向内存中的一个位置。据我所知,实际上所有内存地址都具有相同的类型,与变量类型无关。除了使用不同的指针类型(*int、*string等),是否可以只使用一种类型(varppointer)所有指针类型?不同的指针类型有什么区别?packagemainimport"fmt"funcmain(){i:=5s:="abc"varpi*int//alternativelyvarpipointervarps*string//alternativelyvarpspointerpi=&ips=&sfmt.Printf("%p%p",pi,ps)//resultis0x1040e0f80x1040a

pointers - 在 Go 中增加一个指针

这个问题在这里已经有了答案:PointerarithmeticinGo(2个答案)关闭6年前。谁能告诉我如何在Go中通过字符串递增指针?我已经像在C中那样尝试了ptr+=1但它说类型*string和int是不兼容的。谢谢

go - 如何将字符串作为参数传递给 Golang 指针接收函数?

这个问题在这里已经有了答案:"usedasvalue"infunctioncall(1个回答)关闭4年前。我正在尝试一种带有值和指针接收函数的简单Go结构。我无法将一个字符串作为参数传递给指针接收函数来修改结构数据。任何人都可以帮忙吗?代码:packagemainimport("fmt")typebookstruct{authorstringnamestringcategorystringpriceint16}func(bbook)greet()string{return"Welcome"+b.author}func(b*book)changeAuthor(authorstring){

pointers - 无法通过结构方法替换指针

得到一个返回指针的结构方法:func(d*DataMap)Get(pCoord)*CellData{return&d.Data[p.X+(p.Y*d.Size)]}d.Data是一个CellData数组,它是一个具有多个字段的结构。使用这种方法我可以修改每个字段的内部值,即:example.Get(p).Something=123但是我不能这样做:example.Get(p)=*yada(yadaisa*CellData)我想用我得到的另一个指针替换指针的地方:cannotassigntoexample.Get(p)(undefined)我做错了什么?函数的输出已定义,不知道为什么会出

go - 我可以使用指向 "error"的指针来捕获返回错误吗?

我正在编写一些事务开始/提交/回滚函数,我想将block配对以防止忘记提交我是这样写的:func(foo*Foo)Bar()(errerror){foo.Begin()deferfoo.End(&err)//somebusinesscodereturn}func(foo*Foo)End(eptr*error){//ifrecoverifr:=recover();r!=nil{debug.PrintStack()*eptr=r.(error)}varerr=*eptriferr!=nil{foo.Rollback()}else{foo.Commit()}}它有效,但它使用“接口(inte

pointers - golang 中的指针

这个问题在这里已经有了答案:Whydoesjson.Unmarshalworkwithreferencebutnotpointer?(4个答案)关闭4年前。我正在使用golang来解析一个json字符串:str:="{...}"varfinterface{}json.Unmarshal([]byte(str),f)fmt.Println(f)虽然我在控制台中得到了nil。当我将代码更改为:json.Unmarshal([]byte(str),&f)它将打印json字符串。这是怎么回事?

go - Go 允许算术运算溢出而不是抛出异常是预期的行为吗?

我正在将一些Go代码移植到Rust,我意识到Rust会在乘法期间发生溢出时发生panic,而Go允许发生溢出。下面的测试代码,不会导致溢出但会打印减少的值。(测试通过:https://play.golang.org/)funcmain(){fmt.Println("test\n")varkeyuint64=15000;key=key*2862933555777941757+1fmt.Println(key)} 最佳答案 Spec:Integeroverflow:Forunsignedintegervalues,theoperatio